package it.unipd.dei.bd.icineasti.database;

import it.unipd.dei.bd.icineasti.resource.Messaggio;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

/**
 * Inserisce un nuovo messaggio/commento nel db
 * 
 * @author Morris Antonello
 *
 */
public class CreateMessaggioDatabase {

	/**
	 * Istruzione per il database.
	 */
	private static final String STATEMENT = "INSERT INTO Messaggio VALUES (?, ?, ?, ?)"; // manca ? per il titolo

	/**
	 * Connessione al database
	 */
	private final Connection con;

	/**
	 * Il messaggio da creare
	 */
	private final Messaggio message;

	/**
	 * Crea un nuovo messaggio nel db
	 * 
	 * @param con
	 *            connessione al database.
	 * @param message
	 *            il messaggio da creare.
	 */
	public CreateMessaggioDatabase(Connection con, Messaggio message) {
		this.con = con;
		this.message = message;
	}

	/**
	 * Crea un nuovo messaggio nel db
	 * 
	 * @throws SQLException
	 *             in caso di problemi nell'accesso al database.
	 */
	public void createMessaggio() throws SQLException {

		PreparedStatement pstmt = null;

		try {
			pstmt = con.prepareStatement(STATEMENT);
			pstmt.setInt(1, message.getIdUtente());
			pstmt.setTimestamp(2, message.getDataOra());
			pstmt.setInt(3, message.getCodiceEvento());
			// pstmt.setString(4, message.getTitolo());
			pstmt.setString(4, message.getTesto()); // 5 con titolo

			pstmt.execute();

		} finally {
			if (pstmt != null) {
				pstmt.close();
			}

			con.close();
		}

	}
}
